import java.util.Collection;
import java.util.Iterator;
import java.util.Map;



public class Roles extends Factory {
    private int contadorDoblonesRoles = 0;    
    /*Sobre esta coleccion se va a hacer todo el trabajo de iteracion en los
     valores del map*/
    private Collection<Roles> WorkRoles; 
    private Iterator<Roles> WRit;
    public String nombre;
    
    public Roles(){
		
	}

	
        /*Como este metodo lo heredan todos los roles y el atributo tambien
         tenemos que cada rol alcalde, constructor... tienen su propio contador
          no hace falta decir a quien se le pone el doblon porque esta implicito
         por ejemplo, alcalde.ponerDoblon() añade un doblon al alcalde 
         para usar el metodo se invoca por cada rol que quede y ya esta
         
         En caso de que un rol se comporte distinto se sobreescribe el metodo en
         el rol especifico*/
        
        public void ponerDoblon(Map<String, Roles> rol)
        {
            Roles CurrentRol;
            //1º obtener los valores del Map y colocarlos en la coleccion
            WorkRoles = rol.values();
            /* Apartir de aqui todo cambio sobre workRoles se vera reflejado en el map
             o al menos eso dice el javadoc*/
            //2º iteramos sobre los valores y aumentamos su contador
            WRit = WorkRoles.iterator();
            while (WRit.hasNext())
            {
                CurrentRol = WRit.next();
                CurrentRol.ponerDoblon();
            }
	}
        /*para que a nadie le entre la tentacion de poner doblones en roles que
         estan fuera del map de roles no usados*/
        private void ponerDoblon()
        {
	    contadorDoblonesRoles = contadorDoblonesRoles + 1;
	}
        /*Habra que saber cuanta bonificacion tienen los roles para escoger el
         que mas le convenga al jugador*/
        public int getContadorDoblonRol()
        {
            return contadorDoblonesRoles;
        }
        public void accion(Jugador j, boolean privilegio){
        	
        }
}



